package com.bao.work.work08;

import java.util.ArrayList;

/**
 * @author baoye
 * @date 2024-07-29/20:09
 */
public class MyArrays {
    public static void reverse(ArrayList<Integer> list) {
        for (int start=0,end= list.size()-1;start<=end;start++,end--){
            Integer temp=list.get(start);
            list.set(start, list.get(end));
            list.set(end,temp);
        }
    }

    /*参数ArrayList<Integer> list:要进行操作的集合对象
    要求：对list集合对象中的元素进行反转(第一个和最后一个交换，第二个和倒数第二个交换，第三个和倒数第三个交换...)
		2.*/
    public static Integer max(ArrayList<Integer> list) {
        Integer max=list.get(0);
        for (Integer integer : list) {
            if(max<integer){
                max=integer;
            }
        }
        return max;
    }

    /* 参数ArrayList<Integer> list:要进行操作的集合对象
     要求：求出list集合对象中的最大值并返回
         3.*/
    public static Integer min(ArrayList<Integer> list) {
        Integer min=list.get(0);
        for (Integer integer : list) {
            if(min>integer){
                min=integer;
            }
        }
        return min;
    }

    /* 参数ArrayList<Integer> list:要进行操作的集合对象
     要求：求出list集合对象中的最小值并返回*/
    public static int indexOf(ArrayList<Integer> list, Integer i) {
        for (int i1 = 0; i1 < list.size(); i1++) {
            if(list.get(i1).equals(i)){
                return i1;
            }
        }
        return -1;

    }

    /*参数ArrayList<Integer> list:要进行操作的集合对象
    参数Integer i:需要在集合中查找的元素
    要求：求出元素i在list集合中第一次出现的索引，如果没有返回-1
            */
    public static void replaceAll(ArrayList<Integer> list, Integer oldValue, Integer newValue) {
        while(indexOf(list,oldValue)!=-1&&oldValue!=newValue){
            list.set(indexOf(list,oldValue),newValue);
        }
    }

    /*参数ArrayList<Integer> list:要进行操作的集合对象
    参数Integer oldValue:需要被替换掉的原值
    参数Integer newValue：替换后的新值
    要求：将list集合中的所有值为oldValue的元素替换为newValue*/

}
